<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // - *
    // - **
    // - ***
    // - ****
    // - *****

    // for(var n=1;n<20;n++){
    //     for(var i=0;i<n;i++){
    //         document.write("*");
    //     }
    //     document.write("<br>");
    // }


    // 用来解决多行多列的计算结构
    // 外层循环控制行
    // 内层循环控制列


    // 阶乘
    // 5! = 5*4*3*2*1 === 1*2*3*4*5

    // 计算1~5之间所有数字的阶乘的和
    // 1: 1 + 
    // 2: 1*2 + 
    // 3: 1*2*3 + 
    // 4: 1*2*3*4 + 
    // 5: 1*2*3*4*5 + 

    // var sum = 0;
    // // 外层循环用来将每个数字的阶乘的结果累加起来
    // for(var i=1;i<=5;i++){
    //     // 内层循环用来计算每个数字的阶乘
    //     var res = 1;
    //     for(var j=1;j<=i;j++){
    //         res *= j;
    //     }
    //     sum += res;
    // }
    // console.log(sum);


    // 打印表格，存放九九乘法表
    // 借助document.write()可以解析标签的特性
    
    document.write("<table border=1>");
    for(var j=1;j<=9;j++){
        document.write("<tr>");
        for(var i=1;i<=j;i++){
            document.write("<td>"+ i +"*"+ j +"="+ i*j +"</td>");
        }
        document.write("</tr>");
    }
    document.write("</table>");

    
    // 棋盘有64个方格，第一个格子放1粒芝麻，第二个放2粒，第三个4粒，第四个8粒，第五个16粒，将64个方格摆满，问一共需要多少粒芝麻

    // 1：
    // 2：*2
    // 3：*2*2
    // 4：*2*2*2


    // 计算所有格子芝麻的总数量
    var sum = 0;
    for(var i=0;i<64;i++){
        // 计算单个格子放置的芝麻数量
        var n = 1;
        for(var j=0;j<i;j++){
            n *= 2;
        }
        sum += n;
    }
    console.log(sum);


</script>
</html>